package com.dhcc.sds.busi.dao;

import com.baomidou.mybatisplus.plugins.Page;
import com.dhcc.core.framework.base.mapper.BaseMapper;
import com.dhcc.sds.busi.dto.*;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 病种入组病例
 *
 * @author zhangdc
 * @ClassName: AnalysisSdsMstaMapper
 * @Description: TODO
 * @date 2021-03-22 10:09:15
 */
public interface AnalysisSdsMstaMapper extends BaseMapper<AnalysisSdsMstaDto> {


    List<AnalysisSdsMstaDto> selectMstaDataByLoc(@Param("params") Map<String, Object> params);

    List<AnalysisSdsMstaDto> selectMstaDataForChart(@Param("params") Map<String, Object> params);

    List<AnalysisSdsMstaDto> selectMstaDataByEntity(@Param("params") Map<String, Object> params);

    int selectUpDataByTime(@Param("startDate") Date startDate, @Param("endDate") Date endDate);

    List<AnalysisSdsMstaUpTimeDto> selectUpDataByYear(@Param("params") Map<String, Object> params);

    List<AnalysisSdsMstaUpTimeDto> selectUpDataByMonth(@Param("params") Map<String, Object> params);

    AnalysisSdsMstaUpRateDto selectUpDataRate(@Param("params") Map<String, Object> params);

    List<AnalysisSdsMstaUpTypeDto> selectUpDataType(@Param("params") Map<String, Object> params);

    List<AnalysisCaseDto> selectUpTableByTime(@Param("page") Page<AnalysisCaseDto> page, @Param("params") Map<String, Object> params);

    List<AnalysisCaseDto> selectUpTableByDate(@Param("page") Page<AnalysisCaseDto> page, @Param("params") Map<String, Object> params);

    List<AnalysisCaseDto> selectTableCase(@Param("sqlStr")String sqlStr, @Param("page") Page<AnalysisCaseDto> page, @Param("params") Map<String, Object> params);

    List<AnalysisSdsMstaUpTimeDto> selectUpDataByDay(Map<String, Object> params);

    List<AnalysisCaseDto> selectDeathTableByTime(@Param("page") Page<AnalysisCaseDto> page, @Param("params") Map<String, Object> params);

    List<AnalysisCaseDto> selectSurgeryTableByTime(@Param("page") Page<AnalysisCaseDto> page, @Param("params") Map<String, Object> params);

    List<AnalysisCaseDto> selectUpData(@Param("params") Map<String, Object> params);

    List<AnalysisCaseDto> selectUpTopData(@Param("params") Map<String, Object> params);

    List<AnalysisSdsMstaLocDto> selectMstaLocDataByEntity(@Param("params") Map<String, Object> params);

    List<AnalysisSdsMstaLocDto> selectMstaDocDataByLocTable(@Param("params")Map<String, Object> params);
    List<Map<String, Object>> selectMstaQcDocData(@Param("params")Map<String, Object> params, @Param("selObjs")String selObjs);
    List<AnalysisSdsMstaLocDto> selectMstaLocGroupData(@Param("params") Map<String, Object> params);

    List<String> selectDeptIdByGroupId(@Param("groupId")Long groupId);
    List<Map<String,Object>> selectReportLocOrGroupData(@Param("params") Map<String, Object> params);
}
